Advances in technology and software have increased the reliance that both individuals and businesses have on computer-implemented solutions for performing common tasks, such as creating documents in word processing applications, creating spreadsheets in spreadsheet applications, creating presentations in presentation applications, and utilizing applications for any other suitable reason. A user uses any one of various software applications (e.g., word processing application, text editor, spreadsheet application, presentation application, code editor, integrated development environment (“IDE”)) to generate an artifact (e.g., documents, diagrams, spreadsheets, code files, slides, or any other output file used to store information) based on a user's input. Each artifact is often revised multiple times until the user is ultimately satisfied with the final artifact.
While many artifacts are created by one individual, artifacts are also commonly generated in a collaborative environment, and as such, an artifact may be revised multiple times by different people who are separated by both time and distance. For example, most large scale software development projects are distributed across teams located in different geographic locations and in different time zones. In such projects, the communication between teams remains largely asynchronous, and as such, concurrent discussion, editing, and other tools cannot be used to enhance collaboration.
One known solution that enhances collaboration between individuals is commonly referred to as “tracking changes.” When an application tracks changes, the application stores history data associated with every change that a user makes to an original document. In a word processing document, for example, history data is stored within an artifact that describes what new text a user adds, what text a user deletes, formatting changes, user comments, or any other information that describes the actual changes the user makes to the artifact.
Multiple problems exist with the known solution of tracking changes, however. For example, the known methods for displaying the history data do not adequately exhibit the changes over time but instead only show that changes were made. Furthermore, the history data does not capture the context and process in which the artifact was captured or revised, so a user reviewing history data is left guessing why another user, or perhaps the user him or herself, made the changes indicated in the history data.
For these reasons, among others, a need exists for improved systems and methods for enhancing the development of and collaboration for artifacts created by software applications.